Linux FileSystem Structure

  • /bin

    명령어 바이너리 파일이 존재하는 디렉토리이다. root사용자와 일반 사용자가 함께 사용할 수 있는 명령어 디렉토리이다. 가장 기본적이고 최소로 필요한 프로그램들이 보관되어 있다.

  • /sbin

    bin과 유사하게 단일/다중 사용자에게 기본적으로 필요한 명령어 바이너리 파일들이 있지만, 다른점은 접두사 s에서 유추할 수 있듯 시스템 프로그램 관리를 위한 명령어가 있다는 점이다. 사용 권한은 root유저에게 있다.

  • /usr

    사용자 유틸리티 및 응용 프로그램이 포함되어 있다.

    /usr/bin : 콘솔에서 확장된 프로그램이 들어간다. /bin과 차이점은 어플리케이션, common 유틸리티와 프로그래밍 도구 등 주로 일반 사용자가 확장해서 사용할 수 있는 바이너리 파일이 있다.

    /usr/sbin : 사용자가 실행한 시스템 데몬과 시스템 유틸리티들이 있다.

    /usr/local : 기본 OS와 관련되지 않은 실행가능한 파일, 라이브러리 등이 있다. 어플리케이션들을 소스로 설치할 때 사용되는 장소이다.

    /usr/local/bin : 일반 사용자를 위한 패키지 매니저에 의해 관리되지 않는 프로그램이 위치한다. 사용자가 직접 컴파일한 프로그램은 /usr/bin이 아닌 이 디렉토리에 있어야한다. 배포 패키지 관리자는 /usr/bin에 있는 프로그램을 업그레이드하기 때문에, 직접 컴파일한 파일은 /usr/local/bin 디렉토리에 있어야한다.

    /usr/local/sbin : /usr/local/bin과 유사하나 시스템 관련 프로그램이 있다.

    /usr/include : C의 헤더파일이 위치한다.

    /usr/lib : /lib에 포함되지않은, 사용자를 위한 라이브러리들이 존재한다.

    /usr/share : 아키텍쳐 독립적으로 공유 가능한 텍스트 파일이 포함되어 있는 디렉토리이다.

    /usr/src : 프로그램 소스(주로 커널 소스)가 저장되는 디렉토리이다.

  • /boot

    리눅스 부트로더가 존재하는 디렉토리이다.

  • /dev

    시스템 장치(device)파일을 저장하고 있는 디렉토리이다. 장치 파일명에는 장치의 타입이 접두사로 붙는다. 장치 파일 타입의 종류는 sd(SCSI로 연결된 대용량 저장 장치), ram, hd, fd, usb등이 있다.

    /dev/fd : 파일 디스크립터 파일이다.

    /dev 디렉토리에 있는 장치 일부는 실제 하드웨어 장치가 아닌 특정 자원의 입출력을 간편하게 하기 위한 가상 장치이다. 다음은 가상 장치의 종류이다.

    /dev/null : null 디바이스로, 이 장치로 오는 모든 데이터는 무시된다. 이 장치에 쓰기 작업을 하면 언제나 성공적으로 완료되고, 이 장치로부터 읽기 작업을 하면 아무 데이터도 넘어오지 않는다. 프로그램 출력을 무시할 때 주로 사용한다.

    /dev/full : 항상 꽉찬것으로 간주되기에 이 장치에 쓰기를 하면 항상 에러가 리턴된다. 의도적인 에러를 유발하는 작업을 제공한다.

    /dev/rundom, /dev/urandom : 난수 발생기와 난수 흐름을 발생시키는 스트림

    /dev/zero : null 디바이스와 비슷해 쓰기를 했을때는 항상 성공적인 리턴 코드를 제공하지만, 읽기를 했을 땐 널 문자를 무한히 출력한다.

  • /etc

    시스템 설정 파일들과 스크립트들이 있는 디렉토리이다.

  • /home(또는 ~)

    로그인 유저의 홈 디렉토리이다.

    /home/bin (~/bin) : user-scoped 파일들로, 로그인 사용자에게만 한정된 바이너리 파일들이 있는 디렉토리이다.

  • /lib

    커널이 필요로 하는 커널 모듈 파일들과 프로그램에 필요한 각종 라이브러리 파일들이 존재하는 디렉토리이다.

  • /media

    DVD, USB, CD-ROM 등 탈부착이 가능한 장치들의 마운트 포인트로 사용하는 디렉토리이다.

  • /mnt

    /media 디렉토리와 비슷한 용도로 탈부착이 가능한 장치들에 대해 일시적인 마운트 포인트로 사용하는 디렉토리이다.

  • /proc

    가상 파일 시스템으로, 현재 메모리에 존재하는 모든 작업들이 파일 형태로 존재하는 디렉토리이다. 실제 디스크에 존재하는 것이 아닌, 메모리상에 존재하는 것이기 때문에 가상 파일 시스템이라고 한다. 실제 운용상태 정보를 제공하며, 실행중인 커널의 옵션 값을 변경할 수 있는 파라미터 파일들이 있어 시스템 운용에 있어 매우 중요한 의미를 가진다.

  • /root

    시스템 최고 관리자인 root 사용자의 개인 홈 디렉토리이다.

  • /tmp

    시스템을 사용하는 모든 사용자들이 공동으로 사용하는 tmp디렉토리로, mysql에서 사용하는 소켓파일, 아파치에서 사용하는 세션파일 등이 생성되기도 한다.

  • /var

    시스템 운용 중 생성되었다 삭제되는 데이터를 일시적으로 저장하기 위한 디렉토리이다.

    /var/log : 거의 모든 시스템 로그 파일이 저장된다.

    /var/named : DNS에서 사용하는 zone 파일들이 저장되는 디렉토리이다.

    /var/spool/at : 예약 작업에 관한 파일들이 저장되는 디렉토리이다.

  • /lost+found

    최상위 디렉토리 뿐 아니라 파일 시스템마다 존재하며, 연결이 끊어진 inode들이 숫자 파일형태로 존재하는 디렉토리이다.

참고 : man hier , https://webdir.tistory.com/235, https://webdir.tistory.com/101

Loading script...